/*
 * Fichier regroupant toutes les fonctions AJAX qui permettent
 * d'alimenter ce site
 * Pout une explication détaillée, voir la fonction modify_contact
 */



/*
 * fonction qui permet de récupérer tous les groupes appartenant à l'utilisateur
 */
function get_groupes() {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/groupes.jsp", false);
    requete.send();

    document.getElementById("groupes_promotions").innerHTML = requete.responseText;
    document.getElementById("contacts_groupe").innerHTML = "<a class='button' onclick=\"applyToAdd_groupe()\" >Ajouter un groupe</a>";
    document.getElementById("contact").innerHTML = "";
}


/*
 * Fonction qui permet de récupérer tous les promotions de l'utilisateur
 */
function get_promotions() {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/promotions.jsp", false);
    requete.send();

    document.getElementById("groupes_promotions").innerHTML = requete.responseText;
    document.getElementById("contacts_groupe").innerHTML = "<a class='button' onclick=\"applyToAdd_promotion()\">Ajouter une promotion</a>";

    document.getElementById("contact").innerHTML = "";
}

/*
 * Fonction qui permet de récupérer la liste des contacts d'un utilisateur
 * On ne prend que les noms et prénoms
 */
function get_contacts(idGroupe) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/contacts.jsp?idGroupe="+idGroupe, false);
    requete.send();

    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
    document.getElementById("contact").innerHTML = "<a class='button' onclick=\"applyToAdd_contact(" + idGroupe + ")\" >Ajouter un contact à ce groupe</a><br/><br/><br/><a class=\"button\" onclick=\"applyToModify_groupe(" + idGroupe + ")\">Modifier</a><br/><br/><a class='button' onclick=\"delete_groupe(" + idGroupe + ")\" >Supprimer ce groupe</a>";
    if(document.getElementById("groupe"+idGroupe) != null){
        document.getElementById("groupe"+idGroupe).style.color = "#FF6600";
    }
}


/*
 * Fonction qui permet de récupérer une promotion entière dans laquelle
 * il y les hcards des étudiants de cette promotion
 */
function get_promotion(idPromotion) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/promotion.jsp?idPromotion="+idPromotion, false);
    requete.send();

    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
    document.getElementById("contact").innerHTML = "<a class='button' onclick=\"applyToModify_promotion(" + idPromotion + ")\">Modifier la promotion</a><br/><br/><a class='button' onclick=\"delete_promotion(" + idPromotion + ")\" >Supprimer cette promotion</a>";
    if(document.getElementById("promotion"+idPromotion) != null){
        document.getElementById("promotion"+idPromotion).style.color = "#FF6600";
    }
}

/*
 * Fonction qui permet les informations concernant un contact
 */
function modify_contact(idContact) {
    //On instancie la requête
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    //On récupère les variables à passer en paramètre
    var data = "&nom="+document.form_modifyContact.nom.value;
    data = data+"&prenom="+document.form_modifyContact.prenom.value;
    data = data+"&telHome="+document.form_modifyContact.telHome.value;
    data = data+"&telPrivate="+document.form_modifyContact.telPrivate.value;
    data = data+"&telWork="+document.form_modifyContact.telWork.value;
    data = data+"&emailHome="+document.form_modifyContact.emailHome.value;
    data = data+"&emailPrivate="+document.form_modifyContact.emailPrivate.value;
    data = data+"&temailWork="+document.form_modifyContact.emailWork.value;
    data = data+"&voie="+document.form_modifyContact.voie.value;
    data = data+"&ville="+document.form_modifyContact.ville.value;
    data = data+"&codePostal="+document.form_modifyContact.codePostal.value;
    data = data+"&pays="+document.form_modifyContact.pays.value;


    //On spécifie la méthode ainsi que la page qui servira de proxy en lui
    //passant les paramètres déclarées précédemment
    requete.open("PUT", "ajax/contact.jsp?idContact="+idContact+data, false);

    //On envoie la requête
    requete.send("?idContact="+idContact+data);

    document.getElementById("contact").innerHTML = requete.responseText;
}



/*
 * Fonction qui permet les informations concernant un groupe
 */
function modify_groupe(idGroupe) {
    //On instancie la requête
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    //On récupère les variables à passer en paramètre
    var data = "&nom="+document.form_modifyGroupe.nom.value;


    //On spécifie la méthode ainsi que la page qui servira de proxy en lui
    //passant les paramètres déclarées précédemment
    requete.open("PUT", "ajax/groupe.jsp?idGroupe="+idGroupe+data, false);

    //On envoie la requête
    requete.send("?idGroupe="+idGroupe+data);
    get_groupes();
    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
}


/*
 * Fonction qui permet les informations concernant une promotion
 */
function modify_promotion(idPromotion) {
    //On instancie la requête
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    //On récupère les variables à passer en paramètre
    var data = "&nomPromotion="+document.form_modifyPromotion.nomPromotion.value;
    data = data+"&uriPromotion="+document.form_modifyPromotion.uriPromotion.value;


    //On spécifie la méthode ainsi que la page qui servira de proxy en lui
    //passant les paramètres déclarées précédemment
    requete.open("PUT", "ajax/promotion.jsp?idPromotion="+idPromotion+data, false);

    //On envoie la requête
    requete.send("?idPromotion="+idPromotion+data);
    get_promotions();
    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
}






/*
 * Demande de modification des informations concernant un contact
 */
function applyToModify_groupe(idGroupe) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/applyToModifyGroupe.jsp?idGroupe="+idGroupe, false);
    requete.send();

    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
}

/*
 * Demande de modification des informations concernant une promotion
 */
function applyToModify_promotion(idPromotion) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/applyToModifyPromotion.jsp?idPromotion="+idPromotion, false);
    requete.send();

    document.getElementById("contact").innerHTML = requete.responseText;
}

/*
 * Demande de modification des informations concernant un contact
 */
function applyToModify_contact(idContact) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/contact.jsp?idContact="+idContact, false);
    requete.send();

    document.getElementById("contact").innerHTML = requete.responseText;
}


/*
 * Demande d'ajout de contact
 */
function applyToAdd_contact(idGroupe) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/applyToAddContact.jsp?idGroupe="+idGroupe, false);
    requete.send();

    document.getElementById("contact").innerHTML = requete.responseText;
}

/*
 * Demande d'ajout de promotion
 */
function applyToAdd_promotion() {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/applyToAddPromotion.jsp", false);
    requete.send();

    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
    document.getElementById("contact").innerHTML = "";
}


/*
 * Demande d'ajout de groupe
 */
function applyToAdd_groupe() {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/applyToAddGroupe.jsp", false);
    requete.send();

    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
    document.getElementById("contact").innerHTML = "";
}




/*
 * Ajout de contact
 */
function add_contact(idGroupe) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    var data = "&nom="+document.form_addContact.nom.value;
    data = data+"&prenom="+document.form_addContact.prenom.value;
    data = data+"&telHome="+document.form_addContact.telHome.value;
    data = data+"&telPrivate="+document.form_addContact.telPrivate.value;
    data = data+"&telWork="+document.form_addContact.telWork.value;
    data = data+"&emailHome="+document.form_addContact.emailHome.value;
    data = data+"&emailPrivate="+document.form_addContact.emailPrivate.value;
    data = data+"&temailWork="+document.form_addContact.emailWork.value;
    data = data+"&voie="+document.form_addContact.voie.value;
    data = data+"&ville="+document.form_addContact.ville.value;
    data = data+"&codePostal="+document.form_addContact.codePostal.value;
    data = data+"&pays="+document.form_addContact.pays.value;

    requete.open("POST", "ajax/contact.jsp?idGroupe="+idGroupe+data, false);
    requete.send("?idGroupe="+idGroupe+data);

    document.getElementById("contact").innerHTML = requete.responseText;
    get_contacts(idGroupe);
}





/*
 * Ajout de promotion
 */
function add_promotion() {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    var data = "nomPromotion="+document.form_addPromotion.nomPromotion.value;
    data = data+"&uriPromotion="+document.form_addPromotion.uriPromotion.value;

    requete.open("POST", "ajax/promotions.jsp?"+data, false);
    requete.send("?"+data);

    get_promotions();
    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
}


/*
 * Ajout de groupe
 */
function add_groupe() {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    var data = "nom="+document.form_addGroupe.nom.value;

    requete.open("POST", "ajax/groupes.jsp?"+data, false);
    requete.send("?"+data);
    get_groupes();
    document.getElementById("contacts_groupe").innerHTML = requete.responseText;
}




/*
 * Récupèration du hCard d'un contact
 */
function getInfo_contact(idContact , idGroupe) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("GET", "ajax/infosContact.jsp?idContact="+idContact+"&idGroupe="+idGroupe, false);
    requete.send();
    
    document.getElementById("contact").innerHTML = requete.responseText;
}



/*
 * Suppression de contact
 */
function delete_contact(idContact , idGroupe) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }
    alert(idGroupe);

    requete.open("DELETE", "ajax/contact.jsp?idContact="+idContact+"&idGroupe="+idGroupe, false);
    requete.send();
   
    document.getElementById("contact").innerHTML = requete.responseText;
    get_contacts(idGroupe);
                 
}


/*
 * Suppression de groupe
 */
function delete_groupe(idGroupe) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }

    requete.open("DELETE", "ajax/groupe.jsp?idGroupe="+idGroupe, false);
    requete.send();
    document.getElementById("contact").innerHTML = requete.responseText;
    get_groupes();

}


/*
 * Suppression de promotion
 */
function delete_promotion(idPromotion) {
    var requete ;
    try {
        requete = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e)   {
        requete = new XMLHttpRequest();
    }
    requete.open("DELETE", "ajax/promotion.jsp?idPromotion="+idPromotion, false);
    requete.send();
    document.getElementById("contact").innerHTML = requete.responseText;
    get_promotions();
}
